package pers.wensheng.patterns.structural_pattern.proxy_pattern.jdk_dynamic_proxy;

import java.io.IOException;

/**
 * 客户类
 */
public class ClientMain {
    public static void main(String[] args) throws IOException {
/*

//这个才是代理类，真正的代理类，动态生成在内存中，那个是代理工厂类

public final class $Proxy0 extends Proxy implements SellTickets {
    private static Method m3;

    public $Proxy0(InvocationHandler invocationHandler) {
        super(invocationHandler);
    }

    static {
        m3 = Class.forName("com.itheima.patterns.structural_mode.proxy_mode.jdk_dynamic_proxy.SellTickets").getMethod("sell", new Class[0]);
    }

    public final void sell() {
        this.h.invoke(this, m3, null);//这个就是我们的invoke方法
    }

}

*/
        ProxyFactory factory = new ProxyFactory();
        SellTickets proxy = factory.getProxyObject();
        //通过代理对象调用的方法其根本就是调用的 invoke() 方法
        proxy.sell();
        System.out.println(proxy.getClass());
    }
}
